#pragma once

class Solution
{
public:
    // double myPow(double x, int n) 
    // {
    //     double y = 1.00000; 
    //     if(n < 0)
    //         return y /= (x * myPow(x,(-n) - 1 ));
    //     if(n == 0)
    //         return 1;
    //     // if(n > 0)
    //     return (double)x * myPow(x,n - 1);
    // }

    // double myPow(double x , int n )
    // {
    //     int y = x;
    //     if(n > 0)
    //     {
    //         for(int i = 0;i < n;++i)
    //         {
    //             x *= y;
    //         }
    //     }
    //     if(n < 0)
    //     {
    //         x = 1 / x;
    //         for(int i = 0;i > n - 1;--i)
    //         {
    //             x /= y;
    //         }
    //     }
    //     return x;
    // }

    double pow(double x, int n)
    {
        if (n == 0)return 1;
        double tmp = 0;
        tmp = pow(x, n / 2);
        if (n % 2 == 0)return tmp * tmp;
        return tmp * tmp * x;
    }

    double myPow(double x, long long int n)
    {
        double ret = 0;
        if (n >= 0)return pow(x, n);
        else ret = pow(x, -n);
        return 1 / ret;
    }
};